#include <GL/glew.h>
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
namespace py = pybind11;

void glewInitSelf()
{
    if (glewInit() != GLEW_OK)
    {
        std::cout << "error: can't init glew!\n";
        std::exit(EXIT_FAILURE);
    }
    std::cout << "glew init successful" << std::endl;
}

void initCamera(py::module &);
void initRender(py::module &);
void initPointRender(py::module &);

void initDisplayModule(py::module &mod_display)
{
    mod_display.doc() = "display submodule";

    //define the glewInit function
    mod_display.def("glewInit", &glewInitSelf);

    initCamera(mod_display);
    initRender(mod_display);
    initPointRender(mod_display);
}